import java.util.ArrayList;
import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 86183
 * Date: 2024-04-11
 * Time: 9:23
 */
public class Demo1 {
    public List<Integer> findAnagrams(String s, String p) {
        List<Integer> list=new ArrayList<>();
        int[] hash1=new int[26];
        int[] hash2=new int[26];
        char[] ss=s.toCharArray();
        char[] pp=p.toCharArray();
        for (int i = 0; i < pp.length; i++) {
            hash1[pp[i]-97]++;
        }
        int count=0;

        for (int right = 0,left=0; right <ss.length ; right++) {

            hash2[ss[right]-97]++;
            if(hash2[ss[right]-97]<=hash1[ss[right]-97]){
                count++;
            }
            if(right-left+1>pp.length){
                if(hash2[ss[left]-97]<=hash1[ss[left]-97]){
                    count--;
                }
                hash2[ss[left]-97]--;
                left++;

            }
            if(count==pp.length){
                list.add(left);
            }
//            for(int i=0;i<hash1.length;i++){
//                flg=0;
//                if(hash1[i]!=hash2[i]){
//                    flg=1;
//                    break;
//                }
//            }
//            if(flg==0){
//                list.add(left);
//            }
        }
        return list;
    }
}
